package system.activity;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Collection;

import javax.swing.JPanel;

import net.ericaro.surfaceplotter.JSurfacePanel;

import org.math.plot.PlotPanel;

import user.view.Controls;
import user.view.ReportPanelImpl;

public interface MainListener {
	
	void needRepaint();
	
	void addPanel(JPanel panel);

	void addPanel(Controls panel);

	void addImagePanel(BufferedImage image, String name);
	
	void addImagePanel(File imageFile) throws IOException;
	
	void addPlotPanel(PlotPanel plot, String name);
	
	void addFastPlotPanel(JSurfacePanel jSurfacePanel, String name);

	void addRightPanel(JPanel panel);
	
	void removeRihtPanel();
	
	void clearImagePanel();

	void removeLeftPanel();

	Collection<String> getControlDescription();
	
	String getControlHistoryDescription();

	Collection<BufferedImage> getImages();

	void setStatus(String statusText);

	void setLoadStatus();

	void removeLoadStatus();

	void clearAll();
	
	void showErrorMessage(String message);

}
